/*
 ***************************************************************************
 * MediaTeK Inc.
 * 4F, No. 2 Technology	5th	Rd.
 * Science-based Industrial	Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2012, MTK.
 *
 * All rights reserved.	MediaTeK's source	code is	an unpublished work	and	the
 * use of a	copyright notice does not imply	otherwise. This	source code
 * contains	confidential trade secret material of MediaTeK Tech. Any attemp
 * or participation	in deciphering,	decoding, reverse engineering or in	any
 * way altering	the	source code	is stricitly prohibited, unless	the	prior
 * written consent of MediaTeK, Inc. is obtained.
 ***************************************************************************

	Module Name:
	omci_me_alcatel_h.c

	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	mingang.tan	2018/8/16	Create
*/
#ifndef _OMCI_ME_ALCATEL_H_
#define _OMCI_ME_ALCATEL_H_ 

#define TRTCM_CHAN_NUM_FOR_UP_STRM_POLICER 8

#define MAKE_VLAN_RX_POLICER_ID(instID, entryID) \
            ((0x08 & (instID) ) | ((entryID) << 8 ) )
#define INVALID_POLICERID 0xFFFF

extern omci_attr_dscp_t omci_attr_alcatel_voip_call_statistics_op[];
extern omci_me_func_t omci_me_alcatel_voip_call_statistics_op;
extern omci_attr_t omci_alcatel_voip_call_statistics_attr;

extern omci_attr_dscp_t omci_attr_alcatel_clock_data_set_op[];
extern omci_me_func_t omci_me_alcatel_clock_data_set_op;
extern omci_attr_t omci_alcatel_clock_data_set_attr;

extern omci_attr_dscp_t omci_attr_alcatel_ptp_mst_cfg_op[];
extern omci_me_func_t omci_me_alcatel_ptp_mst_cfg_op;
extern omci_attr_t omci_alcatel_ptp_mst_cfg_attr;

extern omci_attr_dscp_t omci_attr_alcatel_ptp_port_op[];
extern omci_me_func_t omci_me_alcatel_ptp_port_op;
extern omci_attr_t omci_alcatel_ptp_port_attr;

extern omci_attr_dscp_t omci_attr_alcatel_total_gemport_pm_op[];
extern omci_me_func_t omci_me_alcatel_total_gemport_pm_op;
extern omci_attr_t omci_alcatel_total_gemport_pm_attr;

extern omci_attr_dscp_t omci_attr_alcatel_eth_traffic_pm_op[];
extern omci_me_func_t omci_me_alcatel_eth_traffic_pm_op;
extern omci_attr_t omci_alcatel_eth_traffic_pm_attr;

extern omci_attr_dscp_t omci_attr_alcatel_vlan_tag_down_supply_1_op[];
extern omci_me_func_t omci_me_alcatel_vlan_tag_down_supply_1_op;
extern omci_attr_t omci_alcatel_vlan_tag_down_supply_1_attr;

extern omci_attr_dscp_t omci_attr_alcatel_vlan_tag_up_policy_op[];
extern omci_me_func_t omci_me_alcatel_vlan_tag_up_policy_op;
extern omci_attr_t omci_alcatel_vlan_tag_up_policy_attr;

extern omci_attr_dscp_t omci_attr_alcatel_ont_optical_Status_op[];
extern omci_me_func_t omci_me_alcatel_ont_optical_Status_op;
extern omci_attr_t omci_alcatel_ont_optical_Status_attr;

extern omci_attr_dscp_t omci_attr_alcatel_uni_supply_1v2_op[];
extern omci_me_func_t omci_me_alcatel_uni_supply_1v2_op;
extern omci_attr_t omci_alcatel_uni_supply_1v2_attr;

extern omci_attr_dscp_t omci_attr_alcatel_ont_generic_v2_op[];
extern omci_me_func_t omci_me_alcatel_ont_generic_v2_op;
extern omci_attr_t omci_alcatel_ont_generic_v2_attr;

extern omci_attr_dscp_t omci_attr_alcatel_gemport_protocol_pm_op[];
extern omci_me_func_t omci_me_alcatel_gemport_protocol_pm_op;
extern omci_attr_t omci_alcatel_gemport_protocol_pm_attr;



void InitUpStrmPolicerTrtcm(void);
int updateGemPortInfoToRomfile(omci_gem_interwork_tp_ptr gem_iwtp_ptr);


int get_alcatel_total_gemport_pm_history_data(pm_history_data_list_ptr pm_list, uint8_t syncFlag);
int get_alcatel_eth_traffic_pm_history_data(pm_history_data_list_ptr pm_list, uint8_t syncFlag);
int get_alcatel_gemport_2_pm_history_data(pm_history_data_list_ptr pm_list, uint8_t syncFlag);


int omci_me_alcatel_total_gemport_pm_history_notify(pm_history_data_list_ptr pm_list, omci_me_info_t threshold_info);
int omci_me_alcatel_eth_traffic_pm_history_notify(pm_history_data_list_ptr pm_list, omci_me_info_t threshold_info);



#endif
